// package com.example.apigateway.component;
//
// import cn.hutool.json.JSONUtil;
// import com.example.mallcommon.RestResult;
// import com.example.mallcommon.constant.ResultCodeEnum;
// import org.springframework.core.io.buffer.DataBuffer;
// import org.springframework.http.HttpHeaders;
// import org.springframework.http.HttpStatus;
// import org.springframework.http.MediaType;
// import org.springframework.http.server.reactive.ServerHttpResponse;
// import org.springframework.security.core.AuthenticationException;
// import org.springframework.security.web.server.ServerAuthenticationEntryPoint;
// import org.springframework.stereotype.Component;
// import org.springframework.web.server.ServerWebExchange;
// import reactor.core.publisher.Mono;
//
// import java.nio.charset.Charset;
//
// /**
//  * 无效token/token过期 自定义响应
//  * @Author: yang
//  * @Date: 2021/8/22 0022 14:17
//  * @Version 0.0.1
//  */
// @Component
// public class RestAuthenticationEntryPoint implements ServerAuthenticationEntryPoint {
//     @Override
//     public Mono<Void> commence(ServerWebExchange serverWebExchange, AuthenticationException e) {
//         ServerHttpResponse response = serverWebExchange.getResponse();
//         response.setStatusCode(HttpStatus.OK);
//         response.getHeaders().set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
//         response.getHeaders().set("Access-Control-Allow-Origin", "*");
//         response.getHeaders().set("Cache-Control", "no-cache");
//         String body = JSONUtil.toJsonStr(RestResult.custom(ResultCodeEnum.USER_ACCOUNT_UNAUTHENTICATED));
//         DataBuffer buffer = response.bufferFactory().wrap(body.getBytes(Charset.forName("UTF-8")));
//         return response.writeWith(Mono.just(buffer));
//     }
// }
